<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:p="http://primefaces.org/ui">

    <body>
        <ui:composition template="./TemplatePrincipal.xhtml">

            <ui:define name="top">

            </ui:define>

            <ui:define name="left">

            </ui:define>

            <ui:define name="content">
                <f:view>
                    <h:form>
                        <p:panel header="Libro Crear/Editar" footer="Los campos con asterisco * son obligatorios." toggleable="true">
                            <p:growl/>
                            <h:panelGrid columns="2">
                                <p:outputLabel value="Clave:" for="clave" />
                                <p:inputText id="clave" value="#{bookBean.book.clave}" title="Clave" required="true" requiredMessage="The Clave field is required." validatorMessage="La clave debe ser entre 100 y 1000, de 3 minimo y 10 máximo de caracteres.">
                                    <f:validateLongRange minimum="100" maximum="1000"/>
                                    <f:validateLength maximum="10" minimum="3"/>
                                </p:inputText>
                                <p:outputLabel value="Nombre:" for="nombre" />
                                <p:inputText id="nombre" value="#{bookBean.book.nombre}" title="Nombre" required="true" requiredMessage="The Nombre field is required." validatorMessage="El nombre debe contener entre 3 y 40 letras, la primera mayúscula.">
                                    <f:validateLength maximum="40" minimum="3"/>
                                    <f:validateRegex pattern="([A-Z]{1}[a-z]+\s?)+"/>
                                </p:inputText>
                                <p:outputLabel value="Isbn:" for="isbn" />
                                <p:inputText id="isbn" value="#{bookBean.book.isbn}" title="Isbn" required="true" requiredMessage="The Isbn field is required." validatorMessage="El isbn es alfanumerico de minimo 3 y máximo 20 letras y/o números.">
                                    <f:validateLength maximum="20" minimum="3"/>
                                    <f:validateRegex pattern="([A-Z]+[a-z]+[0-9]+)+"/>
                                </p:inputText>
                                <p:outputLabel value="FechaRegistro:" for="fechaRegistro" />
                                <p:calendar id="fechaRegistro" value="#{bookBean.book.fechaRegistro}" title="FechaRegistro" required="true" requiredMessage="The FechaRegistro field is required." validatorMessage="La fecha tiene formato númerico: dd/mm/yy."/>
                                <p:outputLabel value="Paginas:" for="paginas" />
                                <p:inputText id="paginas" value="#{bookBean.book.paginas}" title="Paginas" validatorMessage="En las páginas solo se aceptan números.">
                                    <f:validateRegex pattern="[0-9]"/>
                                </p:inputText>
                                <p:outputLabel value="Estado:" for="estado" />
                                <p:inputText id="estado" value="#{bookBean.book.estado}" title="Estado" required="true" requiredMessage="The Estado field is required."/>
                                <p:outputLabel value="Disponible:" for="disponible" />
                                <p:inputText id="disponible" value="#{bookBean.book.disponible}" title="Disponible" required="true" requiredMessage="The Disponible field is required."/>
                                <p:outputLabel value="IdAutor:" for="idAutor" />
                                <p:selectOneMenu id="idAutor" value="#{bookBean.authorSeleccionado}" required="true" requiredMessage="The IdAutor field is required.">
                                    <!-- TODO: update below reference to list of available items-->
                                    <f:selectItems value="#{authorBean.lista}" var="item"
                                                   itemLabel="#{item.nombre} #{item.apellidoPaterno} #{item.apellidoMaterno}" itemValue="#{item.id}"/>
                                </p:selectOneMenu>
                            </h:panelGrid>

                            <h:panelGrid columns="3">
                                <p:outputLabel value="IdCategoria:" for="idCategoria" />
                                <p:selectOneMenu id="idCategoria" value="#{bookBean.categorySeleccionado}" title="IdCategoria" required="true" requiredMessage="The IdCategoria field is required.">
                                    <!-- TODO: update below reference to list of available items-->
                                    <f:selectItems value="#{categoryBean.lista}" var="item"
                                                   itemValue="#{item.id}"/>
                                </p:selectOneMenu>
                            </h:panelGrid>
                            <p:commandButton update="panel,display" icon="ui-icon-plus" actionListener="#{bookBean.agregarCategoria}" value="Agregar" ajax="false"/>
                            <h:form>
                                <p:panel header="Lista Categorias">
                                    <p:dataTable value="#{bookBean.listaCategoria}" var="item">
                                        <p:column>
                                            <f:facet name="header">
                                                <p:outputLabel value="Id"/>
                                            </f:facet>
                                            <p:outputLabel value="#{item.id}"/>
                                        </p:column>
                                        <p:column>
                                            <f:facet name="header">
                                                <p:outputLabel value="Clave"/>
                                            </f:facet>
                                            <p:outputLabel value="#{item.clave}"/>
                                        </p:column>
                                        <p:column>
                                            <f:facet name="header">
                                                <p:outputLabel value="Descripcion"/>
                                            </f:facet>
                                            <p:outputLabel value="#{item.descripcion}"/>
                                        </p:column>
                                        <p:column>
                                            <f:facet name="header">
                                                <p:outputLabel value="Color"/>
                                            </f:facet>
                                            <p:outputLabel value="#{item.color}"/>
                                        </p:column>
                                        <p:column>
                                            <f:facet name="header">
                                                <p:outputLabel value="Eliminar"/>
                                            </f:facet>
                                            <p:commandButton value="Eliminar" actionListener="#{bookBean.prepararEliminarDeTemporalLista}" ajax="false"/>
                                        </p:column>
                                    </p:dataTable>
                                    <p:commandButton update="panel,display" icon="ui-icon-check" action="#{bookBean.procesarSeleccion}" value="Aceptar" ajax="false"/>
                                    <p:commandButton update="panel,display" icon="ui-icon-closethick" action="BookList" value="Cancelar" immediate="true" ajax="false"/>
                                </p:panel>
                            </h:form>
                        </p:panel>
                    </h:form>
                </f:view>

            </ui:define>

        </ui:composition>

    </body>
</html>
